"ui";  // 启用 UI 模式
auto();
//梦单项目ID
let DreamProjectID = '768778'
let YiJingProjectID = '824187'
var storage = storages.create("DAYU");
// 创建登录布局函数
function createLoginLayout(username, password) {
    ui.layout(
        <vertical padding="16">
            <text textSize="18sp" textColor="black" text="请输入用户名" />
            <input id="name" text={username} />
            <text textSize="18sp" textColor="black" text="请输入密码" />
            <input id="psw" inputType="textPassword" text={password} />
            <button id="ok" text="登入" style="Widget.AppCompat.Button.Colored" />
        </vertical>
    );
}

// 事件绑定函数
function bindLoginEvent() {
    ui.ok.click(() => {
        let name = ui.name.text();
        let psw = ui.psw.text();
        threads.start(() => yzLogins(name, psw));
    });
}

// 初始化界面并绑定事件
function init() {
    createLoginLayout("851358176@qq.com", "a851358176..");
    bindLoginEvent();
}

init();  // 初始化界面

// 输入检查函数
function checkInput(value, errorMessage) {
    if (!value) {
        ui.run(() => toast(errorMessage));
        return false;
    }
    return true;
}

// 登录验证函数
function yzLogins(username, password) {
    if (!checkInput(username, '请填写用户名！') || !checkInput(password, '请填写密码！')) return;

    try {
        let res = http.get(`http://api.nnanx.com:90/api/logins?username=${username}&password=${password}`);
        let response = res.body.json();
        if (response.message === '登录成功') {
            toast('登入成功！');
            // 执行成功操作
            // shell("pm uninstall " + 'yt.com.medcover', true);
            storage.put('token', response.token)
            get_myinfo()
        } else {
            toast(response.message);
        }
    } catch (error) {
        ui.run(() => toast('网络请求失败，请检查您的网络连接'));
    }
}


//获取账户余额
function get_myinfo() {
    let r = http.get(`http://api.sqhyw.net:90/api/get_myinfo?token=${storage.get('token')}`)
    let response = r.body.json();
    ui.run(() => {
        login_successful(response.data[0].money)
    })
};

function login_successful(money) {
    ui.layout(
        <vertical padding="16">
            <text textSize="18sp" textColor="black" text="登入成功" />
            <text textSize="18sp" textColor="black" text={'当然前余额还剩余' + money} />
            <button id="starts" text="脚本开始运行" style="Widget.AppCompat.Button.Colored" />
        </vertical>
    );
    //脚本开始运行
    ui.starts.on("click", () => {
        starts()
    });
};

function starts() {
    threads.start(function () {
        console.show();
        console.setTitle("梦单自动化辅助", "#ff11ee00", 30);
        console.warn("正在打开梦单...");
        let packageName = "yt.com.medcover";

        while (true) {
            launch(packageName);
            sleep(5000); // 等待应用启动
            let isSy = className("android.widget.TextView").text("游戏赚钱").findOne(10000);
            if (isSy) {
                console.warn('进入梦单首页');
                sleep(5000);
                className("android.widget.RadioButton").text("我的").findOne().click();
                get_zb_mobile()
                break; // 成功进入首页，退出循环
            } else {
                console.warn("进入梦单首页失败");
                closeTheApplication(packageName); // 强制停止应用
                sleep(5000); // 等待一段时间后重新尝试
            }
        }

    });
};

//准备获取手机号码
function get_zb_mobile() {
    while (true) {
        let isWd = className("android.widget.TextView").text("欢迎使用梦单").findOne(10000);
        if (isWd) {
            console.warn('进入我的页面');
            console.warn('开始接码');
            sleep(2000);
            get_mobile()
            break;  // 成功获取，退出循环
        } else {
            console.warn('进入我的页面失败');
            className("android.widget.RadioButton").text("我的").findOne().click();
            console.warn('重新进入我的页面');
        }
    }
}

//获取手机号码
function get_mobile() {
    let phoneNumber = id("account");
    sleep(2000);
    try {
        let res = http.get(`http://api.sqhyw.net:90/api/get_mobile?token=${storage.get('token')}&project_id=${DreamProjectID}`);
        let r = res.body.json();  // 仅调用一次 json()
        sleep(2000);
        if (r && r.message === 'ok') {
            console.warn('取到手机号码: ' + r.mobile);
            console.warn('开始写入输入框')
            sleep(2000);
            phoneNumber.setText(r.mobile);
            sleep(5000);
            sendVerificationVode(r.mobile)
        } else {
            console.warn(r.message);
        }
    } catch (error) {
        console.log("请求失败或连接被关闭: " + error);
    }
};

//点击发送验证码按钮
function sendVerificationVode(mobile) {
    id("tv_captcha").findOne().click()
    console.warn('等待验证码...')
    let password = id("password")
    let countdown = 150; // 150秒倒计时

    let timer = setInterval(() => {
        countdown -= 1;
        if (countdown <= 0) {
            console.warn("超时，未能获取验证码");
            console.warn("更换手机号码")
            sleep(2000);
            get_mobile()
            clearInterval(timer);  // 停止计时器
            return;
        }
        // 检查验证码
        let res = http.get(`http://api.sqhyw.net:90/api/get_message?token=${storage.get('token')}&project_id=${DreamProjectID}&phone_num=${mobile}`);
        let r = res.body.json();

        if (r.message === 'ok' && r.data.length > 0) {
            sleep(2000);
            console.warn('验证码获取成功：', r.code);
            password.setText(r.code);  // 设置验证码
            sleep(2000);
            LoginNow(mobile)
            clearInterval(timer);  // 成功获取后停止计时器
        } else {
            console.warn(`剩余时间：${countdown} 秒`);
        }

    }, 1000);  // 每秒执行一次




};

//点击立即登入
function LoginNow(mobile){
    //先点击同意协议
    id("agree").findOne().click()
    sleep(2000);
    //再点击登入
    id("submit").findOne().click()
    sleep(2000);
    while(true) {
         //判断是否进入到设置密码页面
        let isCg = id("tv_title").findOne()
        if ( isCg ) {
            console.warn("更换手机号码")
           //已进入
        }else{
            //未进入
        }
    }
    
};




//强行关闭引用
function closeTheApplication(packageName) {
    var name = getPackageName(packageName);
    if (!name) {
        if (getAppName(packageName)) {
            name = packageName;
        } else {
            return false;
        }
    }
    app.openAppSetting(name);
    text(app.getAppName(name)).waitFor();
    let is_sure = textMatches(/(.*强.*|.*停.*|.*结.*|.*行.*)/).findOne();
    if (is_sure.enabled()) {
        textMatches(/(.*强.*|.*停.*|.*结.*|.*行.*)/).findOne().click();
        textMatches(/(.*确.*|.*定.*)/).findOne().click();
        console.warn(app.getAppName(name) + "应用已被关闭");
        sleep(1000);
        back();
    } else {
        console.warn(app.getAppName(name) + "应用不能被正常关闭或不在后台运行");
        back();
    }
};